Cloud computing refers to the delivery of scalable and pooled computing, storage and networking capacity as a service to a network of end-recipients. The name comes from the use of clouds as an abstraction for the complex infrastructure of networks and associated hardware operative within the cloud. Cloud computing provides services for a user's data, software and computation over a network, for example. Such computing capability relies on sharing of resources to achieve coherence and economies of scale similar to a utility (like the electricity grid) over a network (typically the Internet).
Managed applications deployed on target resources supporting the cloud can be monitored in order ensure that services, as specified by a service level agreement (SLA) and offered by a service provider, are fulfilled according to the agreement. Presently, complex manual procedures are utilized to determine which monitoring components may be applicable to a given target resource and application. Such procedures often improperly specify an incorrect monitor for a given resource or application and the designer of such systems can inadvertently fail to install a relevant monitor.